/**
 * @(#)ICodeEntityRelation.java, 2008-4-30.
 * Copyright 2008  Program Analysis Research Group(PARG),Institute of Software, Peking University.
 * All rights reserved.
 */
package edu.pku.sei.pgie.analyzer.core;

import edu.pku.sei.pgie.analyzer.internal.CodeEntitySymbolTable;
import org.eclipse.jdt.core.dom.CompilationUnit;

/**
 *
 * @author HeLi
 *
 */
public interface ICodeEntityRelation {
	/**
	 * This method is callback method used by @see CodeEntityRelationAnalyzer.
	 * Every relation analyzer must implement this interface.
	 * @param root
	 * 		Root of a syntax tree
	 * @param symbolTable
	 * 		Symbol table of this project
	 * @return
	 * 		A sequence of String[2],represent a relation instance
	 * @throws Exception
	 */
	public String[][] collectCallBack(CompilationUnit root, CodeEntitySymbolTable symbolTable) throws Exception;

	/**
	 * Get relation name
	 * @return
	 */
	public String getRelationName();

}
